import React from 'react';
import Router from './router';
import { useLocation, Navigate } from 'react-router-dom';

const App = () => {
  return <Router />
}

// 高阶组件： 一个函数接受一个组件作为参数， 并且返回值是一个组件， 我们叫这个函数做高阶组件；
const Hoc = (Comp) => {
  return () => {
    const { pathname }  = useLocation()
    // 逻辑拦截
    const token = localStorage.getItem('token');
    // 1， 没有登录。 2. 访问的不是登录页面
    if(!token && pathname !== '/login') {
      // 重定向 登录页面
      return <Navigate to="/login"></Navigate>
    }

    // 正常渲染
    return <Comp></Comp>
  } 
}

export default Hoc(App)